package cn.tedu.generic;
/**
 * @Author 金帮嘉诚
 * @Date 2021-06-19 周六 14:00
 */
/*本类用于测试 泛型的优点*/

import java.util.ArrayList;
import java.util.List;

/**
 知识点：
 泛型的来源、用法、作用
 */
public class TestGeneric1 {
    public static void main(String[] args) {
        /*1.泛型是怎么来的？模拟数组的类型检查*/
        String[] a=new String[5];
//        a[0]=1;
//        a[1]=1.1;
//        a[2]='a';
        a[3]="";
        a[4]="";

        /*2.泛型通常和集合结合着使用*/
        //没有类型约束，数据类型自由
//        List a=new List();//'List' is abstract; cannot be instantiated
        List list0=new ArrayList();
        list0.add(1);
        list0.add(2.2);
        list0.add('v');
        list0.add("11");

        /*3.引入泛型的主要目的是通过<?>约束集合的数据类型*/
        /*4.泛型的好处，可以把报错的时机提前，在编译期就报错，而不是运行后抛出异常
         * 向集合中添加元素时，会检查元素的类型，不是要求的类型就编译失败*/
        List<String> list=new ArrayList<String>();
        list.add("");
//        list.add(1);
//        list.add(2);

        /*5.<type>--type该如何写？
        * 可以根据自己的需求设定类型，但type必须是引用类型不能是基本类型
        * 如，可以写Integer不能写int*/
        List<Integer> list1=new ArrayList<Integer>();
        list1.add(1);
        list1.add(11);

        list1.add(111);

    }
}
